热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

这个名字|标的_微信小程序原生开发实用教程03自定义底部导航(含自定义tabBar导航高亮需点击两次的解决方案)

篇首语:本文由编程笔记#小编为大家整理,主要介绍了微信小程序-原生开发实用教程03-自定义底部导航(含自定义tabBar导航高亮需点击两次的解决方案)相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了微信小程序-原生开发实用教程03-自定义底部导航(含自定义tabBar导航高亮需点击两次的解决方案)相关的知识,希望对你有一定的参考价值。




开始前,请先完成底部导航的开发,详见

【微信小程序-原生开发】实用教程02-添加全局页面配置、页面、底部导航

显然,纯文字的底部导航有点low,还是需要有图标的才酷,下面我们一起来实现

【微信小程序-原生开发】实用教程03-自定义底部导航(含自定义tabBar导航高亮需点击两次的解决方案)_底部导航

1. 修改 tabBar 配置

在 app.json 的 tabBar 配置中新增

"custom": true,

即启用用户自定义的 tabar,但之前的 list 配置留着,别删 !!!

【微信小程序-原生开发】实用教程03-自定义底部导航(含自定义tabBar导航高亮需点击两次的解决方案)_ico_02

2. 添加自定义的 tabBar 代码

在项目目录下新建文件夹 ​​custom-tab-bar​​​ (必须是这个名字!)
文件夹中依次创建以下文件

custom-tab-bar\\data.js

export default [

icon: home,
text: 首页,
url: pages/index/index,
,

icon: usergroup,
text: 家庭成员,
url: pages/member/index,
,

icon: tips,
text: 圆梦宝典,
url: pages/bible/index,
,

icon: user,
text: 我的世界,
url: pages/me/index,
,
];

custom-tab-bar\\index.js

import TabMenu from ./data;
Component(
data:
active: 0,
list: TabMenu,
,
methods:
onChange(event)
this.setData( active: event.detail.value );
wx.switchTab(
url: this.data.list[event.detail.value].url.startsWith(/)
? this.data.list[event.detail.value].url
: `/$this.data.list[event.detail.value].url`,
);
,
init()
const page = getCurrentPages().pop();
const route = page ? page.route.split(?)[0] : ;
const active = this.data.list.findIndex(
(item) =>
(item.url.startsWith(/) ? item.url.substr(1) : item.url) ===
`$route`,
);
this.setData( active );
,
,
);

custom-tab-bar\\index.json


"component": true,
"usingComponents":
"t-tab-bar": "tdesign-miniprogram/tab-bar/tab-bar",
"t-tab-bar-item": "tdesign-miniprogram/tab-bar/tab-bar-item",
"t-icon": "tdesign-miniprogram/icon/icon"

custom-tab-bar\\index.wxml

value="active"
bindchange="onChange"
split="false"
>
wx:for="list"
wx:for-item="item"
wx:for-index="index"
wx:key="index"
>


item.text


custom-tab-bar\\index.wxss

.custom-tab-bar-wrapper
display: flex;
flex-direction: column;
align-items: center;
.custom-tab-bar-wrapper .text
font-size: 20rpx;

3. 解决导航高亮需点击两次的问题

本以为通过以上两步就ok了,结果实际使用时,会发现切换底部导航时,页面切换了,但导航没有变高亮,需要再多点击一次才行……

解决方案如下:
在每个页面的 ​​​.js​​ 文件中添加

onShow()
this.getTabBar().init();
,

即在每次页面显示时,对底部导航进行一次初始化。



推荐阅读
  • 使用 Vue 集成 iScroll 实现移动端表格横向滚动与固定列功能 ... [详细]
  • 本项目在Java Maven框架下,利用POI库实现了Excel数据的高效导入与导出功能。通过优化数据处理流程,提升了数据操作的性能和稳定性。项目已发布至GitHub,当前最新版本为0.0.5。该项目不仅适用于小型应用,也可扩展用于大型企业级系统,提供了灵活的数据管理解决方案。GitHub地址:https://github.com/83945105/holygrail,Maven坐标:`com.github.83945105:holygrail:0.0.5`。 ... [详细]
  • 本文深入探讨了RecyclerView的缓存与视图复用机制,详细解析了不同类型的缓存及其功能。首先,介绍了屏幕内ViewHolder的Scrap缓存,这是一种最轻量级的缓存方式,旨在提高滚动性能并减少不必要的视图创建。通过分析其设计原理,揭示了Scrap缓存为何能有效提升用户体验。此外,还讨论了其他类型的缓存机制,如RecycledViewPool和ViewCacheExtension,进一步优化了视图复用效率。 ... [详细]
  • 深入解析 Django 中用户模型的自定义方法与技巧 ... [详细]
  • Android 图像色彩处理技术详解
    本文详细探讨了 Android 平台上的图像色彩处理技术,重点介绍了如何通过模仿美图秀秀的交互方式,利用 SeekBar 实现对图片颜色的精细调整。文章展示了具体的布局设计和代码实现,帮助开发者更好地理解和应用图像处理技术。 ... [详细]
  • 本文详细介绍了使用响应文件在静默模式下安装和配置Oracle 11g的方法。硬件要求包括:内存至少1GB,具体可通过命令`grep -i memtotal /proc/meminfo`进行检查。此外,还提供了详细的步骤和注意事项,确保安装过程顺利进行。 ... [详细]
  • 本题库精选了Java核心知识点的练习题,旨在帮助学习者巩固和检验对Java理论基础的掌握。其中,选择题部分涵盖了访问控制权限等关键概念,例如,Java语言中仅允许子类或同一包内的类访问的访问权限为protected。此外,题库还包括其他重要知识点,如异常处理、多线程、集合框架等,全面覆盖Java编程的核心内容。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 探讨 `org.openide.windows.TopComponent.componentOpened()` 方法的应用及其代码实例分析 ... [详细]
  • Liferay Portal 中 AutoEscape 构造函数的应用与实例代码解析 ... [详细]
  • 本文深入探讨了NDK与JNI技术在实际项目中的应用及其学习路径。通过分析工程目录结构和关键代码示例,详细介绍了如何在Android开发中高效利用NDK和JNI,实现高性能计算和跨平台功能。同时,文章还提供了从基础概念到高级实践的系统学习指南,帮助开发者快速掌握这些关键技术。 ... [详细]
  • RancherOS 是由 Rancher Labs 开发的一款专为 Docker 设计的轻量级 Linux 发行版,提供了一个全面的 Docker 运行环境。其引导镜像仅 20MB,非常适合在资源受限的环境中部署。本文将详细介绍如何在 ESXi 虚拟化平台上安装和配置 RancherOS,帮助用户快速搭建高效、稳定的容器化应用环境。 ... [详细]
  • 在第七天的深度学习课程中,我们将重点探讨DGL框架的高级应用,特别是在官方文档指导下进行数据集的下载与预处理。通过详细的步骤说明和实用技巧,帮助读者高效地构建和优化图神经网络的数据管道。此外,我们还将介绍如何利用DGL提供的模块化工具,实现数据的快速加载和预处理,以提升模型训练的效率和准确性。 ... [详细]
  • 使用React与Ant Design 3.x构建IP地址输入组件
    本文深入探讨了利用React框架结合Ant Design 3.x版本开发IP地址输入组件的方法。通过详细的代码示例,展示了如何高效地创建具备良好用户体验的IP输入框,对于前端开发者而言具有较高的实践指导意义。 ... [详细]
  • 本文深入探讨了Android事件分发机制的源代码,重点分析了DecorView作为Activity根布局的角色及其在事件传递中的作用。同时,详细解析了PhoneWindow在Activity窗口管理中的关键功能,以及它如何与DecorView协同工作,确保用户交互事件的高效处理。 ... [详细]
author-avatar
贾春雨-cherry
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有